1668C - Make it Increasing - CodeForces Solution


brute force greedy math *1300

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n;
    cin>>n;
    long long ans=1e18;
    long long arr[n];
    for(int i=0;i<n;i++)cin>>arr[i];
    for(int i=0;i<n;i++){
        long long ans1=0;
        long long mx=0;
        for(int j=i-1;j>=0;j--){
            long long x=arr[j];
            if(x<mx){
                ans1++;
                mx=-arr[j];
            }
            else{
                long long y=abs(mx);
            long long z=(y/x)+1;
            ans1+=z;
            mx=-(z*x);
            }
            
        }
        mx=0;
        for(int j=i+1;j<n;j++){
           long long x=arr[j];
           if(x>mx){
               ans1++;
               mx=x;
           }
           else{
               long long z=mx/x +1;
               ans1+=z;
               mx=(z*x);
           }
        }
        ans=min(ans,ans1);
    }
    cout<<ans<<endl;
    return 0;
}


Comments

Submit
0 Comments
More Questions

1622B - Berland Music
1139B - Chocolates
1371A - Magical Sticks
1253A - Single Push
706B - Interesting drink
1265A - Beautiful String
214A - System of Equations
287A - IQ Test
1108A - Two distinct points
1064A - Make a triangle
1245C - Constanze's Machine
1005A - Tanya and Stairways
1663F - In Every Generation
1108B - Divisors of Two Integers
1175A - From Hero to Zero
1141A - Game 23
1401B - Ternary Sequence
598A - Tricky Sum
519A - A and B and Chess
725B - Food on the Plane
154B - Colliders
127B - Canvas Frames
107B - Basketball Team
245A - System Administrator
698A - Vacations
1216B - Shooting
368B - Sereja and Suffixes
1665C - Tree Infection
1665D - GCD Guess
29A - Spit Problem